﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Subgurim.Controles;
using System.Drawing;

namespace HorseTrack.Domain
{
    public class Cerca
    {
        #region Properties
        public GPolygon Poligono;
        public GLatLng CoordenadaDeReferenciaInterna;
        public string Descripcion { get; set; }
        public string IdGeoFence { get; set; }
        public int IdCliente { get; set; }
        public string IdPoligono { get; set; }
        private bool Inicializado;
        public string Area { get; set; }
        #endregion
        #region Constructor
        public Cerca()
        {
            Inicializado = false;
            List<GLatLng> lstPolygonBounds = new List<GLatLng>();
            CoordenadaDeReferenciaInterna = new GLatLng(0, 0); //Se centra en cualquier lado, queda a responsabilidad del que crea el GeoFence de marcar la referencia.
            Poligono = new GPolygon();
            Poligono.fillColorNet = Color.DarkOrange;
            Poligono.fillOpacity = 0.4;
            Poligono.clickable = true;
        }

        #endregion
        #region Methods
        public void AddCoordinates(string strLatitud, string strLongitud)
        {
            try
            {

                GLatLng objLatLng = new GLatLng(Convert.ToDouble(strLatitud.Replace('.', ',')), Convert.ToDouble(strLongitud.Replace('.', ',')));
                Poligono.points.Add(objLatLng);
            }
            catch (Exception ex)
            {
                //   ControlLog.writeLog("[addCordinates] Excepcion agregando coordenadas (" + strLatitud.Replace('.', ',') + " - " + strLongitud.Replace('.', ',') + "):" + ex.Message);
            }
        }
        public void AddInfo(string strIdClienteParam, string strDescripcionParam, string strIdGeoFenceParam)
        {
            try
            {
                if (Inicializado == false)
                {
                    Descripcion = strDescripcionParam;
                    IdCliente = Convert.ToInt32(strIdClienteParam);
                    IdGeoFence = strIdGeoFenceParam;
                    Inicializado = true;
                }
            }
            catch (Exception ex)
            {
                //  ControlLog.writeLog("[addInfo] Excepcion agregando info: " + ex.Message);
            }
        }
        //public void DibujarEn(GMap GMap1, IAccionPoligono interfaceAccion, bool boolDibujable, bool boolEditable)
        //{
        //    try
        //    {
        //        List<GLatLng> lstStartPoint = new List<GLatLng>();
        //        lstStartPoint.Add(GMap1.GCenter);
        //        GPolygon objNewPolygon = new GPolygon(lstStartPoint, Color.DarkOrange, 0.4);
        //        this.Poligono = objNewPolygon;
        //        this.Poligono.enableDrawing = boolDibujable;
        //        this.Poligono.enableEditing = boolEditable;
        //        this.Poligono.clickable = true;


        //        GMap1.addPolygon(this.Poligono);
        //        GMap1.addListener(interfaceAccion.agregarEvento(this));
        //        //GMap1.addListener(new GListener(this.objPolygon.PolygonID, GListener.Event.click, "function(point) {if(confirm('¿Desea guardar este GeoFence?')){ var ev = new serverEvent('saveGeoFence', subgurim_GMap1); ev.addArg(this.getVertexCount()); ev.addArg('" + this.objPolygon.PolygonID + "');  ev.addArg(this.getArea()); var i=0; for(i=0;i<this.getVertexCount();i++) { ev.addArg(this.getVertex(i));}  ev.send(); alert('GeoFence guardado OK!');}else{alert('GeoFence sin guardar, se borrará automáticamente en la próxima actualización');}}"));
        //    }
        //    catch (Exception ex)
        //    {
        //     //   ControlLog.writeLog("[dibujarEn] Excepcion dibujando GeoFence: " + ex.Message);
        //    }
        //}
        public string GetArea()
        {
            return "22.23234";
        }
        public string GetCantidadCaballos()
        {
            return "2";
        } 
        #endregion

    }

}
